// pages/reservation/list/list.js

const util=require('../../../utils/util.js')
const networkUtil=require('../../../utils/networkutil.js')

const app=getApp()
let logStrPrefix="reservation.list"

Page({

    /**
     * 页面的初始数据
     */
    data: {
        //预约信息
        reservationPrimaryList: [],
        pagenum: 1,
        pagesize: 10,
        loadMoreText: "加载更多",
        noMoreText: "没有更多了哦",
        totalPages: 1,
        //是否已全部加载
        noMore: false,
        
        //页面初次渲染完成标识
        firstOnReady: false
        
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function(options) {
        //console.info("reservation.list.onLoad()..")
        //获取该用户创建的访客单列表
        this.listByCreatorEmployeeNo()
    },
    
    /**
     * 根据creatorEmployeeNo获取其创建的访客单列表，并分页。
     * 传入参数 pagenum(默认值为1)。
     */
    listByCreatorEmployeeNo: function(pagenum=1){
        let that = this
        let url = app.globalData.baseUrl + "/reservation/listReservationPrimaryWithPage"
        let requestData = {
            pagesize: that.data.pagesize,
            pagenum: pagenum
        }

        networkUtil.request_get(url,requestData).then((res)=>{
            //若已获取预约信息
            console.log("reservation.list.listByCreatorEmployeeNo() 获取预约信息，已完成..")
            that.setData({
                reservationPrimaryList: res.data.records,
                pagenum: res.data.current,
                pagesize: res.data.size,
                totalPages: res.data.pages,
                noMore: (res.data.current >= res.data.pages) ? true : false
            })
            //util.prettyPrint("page",res.data)
        }).catch((res)=>{
            //若未获取预约信息
            console.error(logStrPrefix+".listByCreatorEmployeeNo() 获取预约信息，发生错误!", res)
        })
    },


    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function() {
        //console.info("reservation.list.onReady()..")
        //页面初次渲染已完成
        this.setData({
            firstOnReady: true
        })
    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function() {
        //console.info("reservation.list.onShow()..")
        
        /**
         * 若该页面再次显示时，重新获取第一页预约记录。
         */
        let firstOnReady=this.data.firstOnReady
        if(firstOnReady==true){
            //获取该用户创建的访客单列表,获取第一页。
            this.listByCreatorEmployeeNo()
        }
        
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function() {
        //console.info("reservation.list.onPullDownRefresh()..")
        //获取该用户创建的访客单列表，页数为第一页。
        this.listByCreatorEmployeeNo()
        
        setTimeout(()=>{
            wx.stopPullDownRefresh()
        },1000)
    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function() {
        //console.log("reservation.list.onReachBottom() 执行了下拉方法..")

        //分析是否已全部加载
        let that=this
        if(that.data.pagenum >= that.data.totalPages){
            that.setData({
                noMore: true
            })
            return
        }

        //没有全部加载时，加载下一页数据
        let url = app.globalData.baseUrl + "/reservation/listReservationPrimaryWithPage"
        let requestData = {
            pagesize: that.data.pagesize,
            pagenum: that.data.pagenum+1
        }
        
        networkUtil.request_get(url,requestData).then((res)=>{
            //若已获取下一页预约信息
            console.log(logStrPrefix+" 获取下一页预约信息，已完成..")
            that.setData({
                reservationPrimaryList: that.data.reservationPrimaryList.concat(res.data.records),
                pagenum: res.data.current,
                pagesize: res.data.size,
                totalPages: res.data.pages,
                noMore: (res.data.current >= res.data.pages) ? true : false
            })
            //util.prettyPrint("page",res.data)
        }).catch((res)=>{
            //若未获取下一页预约信息
            console.error(logStrPrefix+" 获取下一页预约信息，发生错误!", res)
        })
    },
    
    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function() {

    }
})